using System;

namespace UserManagementService.DTOs;

using Volo.Abp.Application.Dtos;
/// <summary>
/// 用户登录历史DTO
/// </summary>
public class UserLoginHistoryDto
{
    /// <summary>
    /// ID
    /// </summary>
    public Guid Id { get; set; }

    /// <summary>
    /// 用户ID
    /// </summary>
    public Guid UserId { get; set; }

    /// <summary>
    /// 用户名
    /// </summary>
    public string UserName { get; set; } = string.Empty;

    /// <summary>
    /// 登录时间
    /// </summary>
    public DateTime LoginTime { get; set; }

    /// <summary>
    /// 客户端ID
    /// </summary>
    public string? ClientId { get; set; }

    /// <summary>
    /// 客户端IP地址
    /// </summary>
    public string? ClientIpAddress { get; set; }

    /// <summary>
    /// 浏览器信息
    /// </summary>
    public string? BrowserInfo { get; set; }

    /// <summary>
    /// 设备信息
    /// </summary>
    public string? DeviceInfo { get; set; }

    /// <summary>
    /// 操作系统信息
    /// </summary>
    public string? OperatingSystem { get; set; }

    /// <summary>
    /// 地理位置
    /// </summary>
    public string? Location { get; set; }

    /// <summary>
    /// 是否成功
    /// </summary>
    public bool IsSuccess { get; set; }

    /// <summary>
    /// 失败原因
    /// </summary>
    public string? FailureReason { get; set; }

    /// <summary>
    /// 登录类型
    /// </summary>
    public string? LoginType { get; set; }

    /// <summary>
    /// 登出时间
    /// </summary>
    public DateTime? LogoutTime { get; set; }

    /// <summary>
    /// 会话时长（秒）
    /// </summary>
    public long? SessionDuration { get; set; }
}